package com.liangtian.mdm.material.dao;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Repository;

import com.liangtian.mdm.base.BaseDao;
import com.liangtian.mdm.material.model.WlwlUpdate;

/**
 * 物料代码维护操作接口类
 *
 
 * @date 2016-12-14
 */
@Repository
public interface WlwlUpdateDao extends BaseDao<WlwlUpdate> {

    public List<WlwlUpdate> weiHuWlwlUpdatePage(Map<String, Object> wlwlupdate);

    public Map<String, Object> getWlwlUpdateById(WlwlUpdate update);

    public int deleteWlwlUpdateByIdS(Map<String, Object> map);

    public int insertWlwlUpdate(Map<String, Object> map);

    /**
     * 物料变更数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2017-02-20
     */
    public List<WlwlUpdate> bianGengWlwlUpdate(Map<String, Object> cond);

    /**
     * 修改物料变更数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2017-02-22
     */
    public int updateWlwlUpdate(Map<String, Object> cond);

    /**
     * 根据物料变更表数据更新物料表数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2017-03-01
     */
    public int updateWlwlByUpdate(Map<String, Object> cond);

    /**
     * 根据物料变更表数据冻结/解冻物料表数据
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2017-03-01
     */
    public int updateWlwlStatusByUpdate(Map<String, Object> cond);

    /**
     * 根据ID集合查询WLBM集合
     *
     * @param list
     * @return
     * @author jyh
     * @date 2017-03-03
     */
    public List<String> getWlwlUpdateWlbmByIds(Map<String, Object> cond);

    /**
     * 根据物料编码获取物料变更记录
     *
     * @param wlbm
     * @return
     * @author jyh
     * @date 2017-03-24
     */
    public List<WlwlUpdate> getWlwlUpdateByWlbm(String wlbm);

    /**
     * 根据条件获取物料变更表记录
     *
     * @param cond
     * @return
     * @author jyh
     * @date 2018-01-17
     */
    public WlwlUpdate getWlwlUpdateByCond(Map<String, Object> cond);

    /**
     * 根据选择的待修改长描述的物料，往各相关的变更表中写入数据，利用存储过程完成。
     *
     * @param wlbms
     * @param userid
     * @param bg_type 变更的类型
     * @return 执行是否成功
     * @author jyh
     * @date 2018-01-17
     */
    public void insertWlUpdateDataForQcModify(Map<String, Object> cond);

    /**
     * 物料长描述变更校验
     *
     * @param map
     * @return
     * @author jyh
     * @date 2018-01-25
     */
    public void wlQcUpdateCheckout(Map<String, Object> map);

    /**
     * 物料长描述变更审核通过
     *
     * @param map
     * @return
     * @author jyh
     * @date 2018-01-25
     */
    public void wlQcUpdatePass(Map<String, Object> map);

    public List<String> getWlwlUpdateIdByWlDrId(String wldrid);

    public String getMaxUpdIdByWlDrId(String wldrid);
}
